草庐IT

DOM 封装

全部标签

javascript - 使用 JavaScript 展平 DOM 中的嵌套跨度以优化 HTML 编辑器输出

我需要使用JavaScript重新格式化输入HTML,以便生成的输出HTML始终是的序列包含仅一个或多个的节点节点和每个节点应该包含恰好一个#text节点。举个例子,我想转换如下所示的HTML:Thisisline#1Thisisline#2Thisisline#3Thisisline#4HTML看起来像这样:Thisisline#1Thisisline#2Thisisline#3Thisisline#4额外的,有点离题的信息:文本在TinyMCE编辑器中。HTML需要符合此模式以使应用程序更有用并提供具有可用HTML的PDF输出引擎(wkhtmltopdf如果HTMl变得过于复杂且嵌

javascript - 使用 jQuery 的 DOM 元素的非深拷贝

是否可以在不克隆其内容的情况下在jQuery中创建DOM元素的克隆/副本?我需要将一个div的内容拆分为两个具有相同属性的独立div。因此,例如我需要更改:thisisthefirstsentence.thisisthesecondsentence.变成类似的东西:thisisthefirstsentence.thisisthesecondsentence.具体如何拆分内容比较复杂,但这基本上就是我需要做的。显然,可以使用以下方法创建没有内容的克隆:$(el).clone().empty();但由于我的元素可能变得相当大,我想摆脱不必要地克隆元素内容的开销。想法?谢谢!

javascript - 修改 DOM 元素和限制回流的最有效方法是什么?

当使用具有潜在大型JS库、View模板、验证、ajax、动画等的非常动态的UI(想想单页应用程序)时......有哪些策略可以帮助最大程度地减少或减少浏览器花费的时间回流焊?例如,我们知道有很多方法可以完成DIV大小的更改,但是是否有应该避免的技术(从回流的Angular来看)以及浏览器之间的结果有何不同?这是一个具体的例子:给出了一个简单的示例,其中包含3种不同的方法来在调整窗口大小时控制DIV的大小,应该使用哪种方法来最大程度地减少回流?http://jsfiddle.net/xDaevax/v7ex7m6v///Method1:PureJavascriptfunctionresi

javascript - 你怎么能抓取dom中的元素并在没有id的情况下应用不同的css?

我在这里有点困惑。我正在做一个动态元素,我想应用不同的css具有相同类但没有id的div。我如何将不同的css应用到具有相同类的第一个div,然后不同的css到同一类的第二个div等等......假设我将fullwidthContainer类应用于3divs对于第一个div,我想要宽度1000px,第二个我想要800px等等。我不能在这里给出id或其他类,因为它是动态生成的。请帮忙。谢谢。好的,我是用javascript做的functionemphatic(){vartotalContainers=document.getElementsByClassName('fullwidthCo

javascript - 如何使用 Webassembly (wasm) 访问和修改文档对象模型 (DOM)?

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭6年前。Improvethisquestion我知道webassembly(wasm)仍处于起步阶段,但我想知道我是否以及如何使用它来更改DOM(就像我使用Javascript来更改DOM一样)更改DOM)。这是官方页面:WasmMVP

javascript - 使用浏览器解析 CSS 而无需触及 DOM/样式

我有这样的东西:constsomeCSS=`.foo{padding:20px;background-color:#ddf;width:100px;}.bar{height:100px;}.foo{padding-top:30px;/*thisoverridesthepreviousone*/}`;我可以将此添加到DOM中,并使用这样的每个规则(jsFiddle)取回所有选择器:conststyle=document.createElement('style');style.innerHTML=someCSS;document.head.append(style);conststyle

javascript - 如何在执行页内脚本之前操作 DOM?

使用Puppeteer,在页面内JS执行之前,如何在页面上下文中运行脚本,并提供完整的DOM?例如,在运行任何页面JS之前,如何运行以下脚本从img元素中删除alt属性?document.querySelectorAll('img[alt]').forEach(e=>e.removeAttribute('alt'))(page.evaluateOnNewDocument看起来很有用,但它似乎是在页面内容可用之前执行的——在它运行时,页面是空白的。) 最佳答案 我认为实现目标的方法是执行:设置page.setJavaScriptEna

javascript - Vue 不会在 'indirectly' 更改表达式的值时更新 DOM

长话短说我正在尝试从JSON动态构建UI。JSON表示具有应用程序状态(变量)和以这些变量为条件的UI构建逻辑的vue.js应用程序。"type":"switch"的JSON对象(参见下面链接的fiddle),指示vue.js应用程序显示多个"case":{"case1":{..},"case2":{..}}取决于状态变量的值"variable":"key"/*转换为vueApp.key*/.更改其中一个变量(update_status)最初会导致DOM更新。遗憾的是,在安装应用程序后再次更改它不会影响DOM。我很确定我正在做一些愚蠢的事情或遗漏了一些微妙的事情。稍长的版本:(如果你还

javascript - 如何封装mocha `expect()`代码?

我正在尝试测试是否存在一些我希望在所有测试中都需要的api响应属性(status和data属性)。这是一个通用测试,它断言supertest中的所需属性expect()方法:it('shouldcreateawidget',done=>{letstatus=200;request(test_url).post('/api/widgets').set('Authorization',`Bearer${token}`).send({sku:my_widget_data.sku,name:my_widget_data.name,description:''}).expect(res=>{as

javascript - Angular Component 的 CSS 封装是如何工作的?

我想明白如果我创建两个样式表样式1.heading{color:green;}样式2.heading{color:blue;}现在如果这两个样式分别写在两个不同的View中,渲染的时候在布局上作为PartialView,那么在这种情况下可能会发生冲突一个可以覆盖另一个的样式。但是使用angular(见第16页),这两种不同组件的样式怎么封装在同一个页面上渲染呢?为什么CSS没有被覆盖?例如import{Component}from'@angular/core';@Component({selector:'app-user-item',template:'abc',styleUrls:[